﻿//using System;
//using System.Collections.Generic;
//using System.Text;
//using DCRF.Common.Core;
//using DCRF.Common.Primitive;
//using DCRF.Common.Helper;
//using System.Reflection;
//using DCRF.Common.DBC;
//using DCRF.Common.Interface;
//using System.Windows.Forms;
//using DBML.Interface;
//using DCRF.Common.Definition;

//namespace DCRF.BaseBlocks
//{
//    public class DBList: BlockBase
//    {
//        public override BlockInfo BlockInfo
//        {
//            get
//            {
//                BlockInfo result = new BlockInfo();
//                result.BlockID = new CID("DBList", new BlockVersion(1, 0, 0, 0), "DCRF");
//                return result;
//            }
//        }

//        public override BlockType Type
//        {
//            get
//            {
//                return BlockType.MultipleInstance;
//            }
//        }

//        public override PlatformType Platform
//        {
//            get
//            {
//                return PlatformType.Windows;
//            }
//        }

//        public override void InitProperties()
//        {
//            Properties.Add("Rows", typeof(IRowCollection));
//            Properties.Add("DisplayField", typeof(string));
//            Properties.Add("ValueField", typeof(string));
//            Properties.Add("SelectedValue", typeof(object));
//        }

//        public override void InitEvents()
//        {
//            Events.Add("ItemChanged");
//        }

//        private List<object> values = new List<object>();

//        [BlockService]
//        public void BindToUI(Control container)
//        {
//            IRowCollection rows = Properties["Rows"] as IRowCollection;
//            string display = Properties["DisplayField"].ToString();
//            string valField = Properties["ValueField"].ToString();

//            ListBox lst = new ListBox();

//            foreach (IDataRow row in rows)
//            {
//                lst.Items.Add(row.GetFieldValue(display));

//                values.Add(row.GetFieldValue(valField));
//            }

//            lst.SelectedIndexChanged += new EventHandler(lst_SelectedIndexChanged);

//            container.Controls.Add(lst);
//        }

//        void lst_SelectedIndexChanged(object sender, EventArgs e)
//        {
//            Properties["SelectedValue"] = values[(sender as ListBox).SelectedIndex];

//            Events["ItemChanged"].Raise();
//        }
//    }
//}
